Computing and communication networks typically include devices, such as routers, switches or gateways, which transfer or switch data, such as packets, from one or more sources to one or more destinations. A network switch or router, in particular, may include a networking device that connects network segments and computing devices.
Traffic through a network, such as an Internet Protocol (IP) based packet switching network, may be transmitted as unicast traffic, where a unicast transmission refers to the sending of messages to a single network destination. Another type of transmission, a multicast transmission, refers to simultaneously sending messages to a group of destinations. In multicast transmissions, it is desirable to send the multicast messages using an efficient delivery strategy that creates copies of the multicast messages only when the links to the multiple destinations split. IP multicast technologies are frequently used to stream multimedia to a number of clients.
A number of different protocols may be used to implement IP multicast. For example, the Internet Group Management Protocol (IGMP) is a communication protocol used to manage the membership of IP multicast groups. IGMP may be used by IP hosts and adjacent multicast routers to establish multicast group memberships. Another protocol, Protocol-Independent Multicast (PIM) includes a family of multicast routing protocols that may be used to efficiently route traffic in multicast groups that may span wide-area (and inter-domain) internets. PIM is termed protocol-independent because PIM does not include its own topology discovery mechanism, but instead uses routing information supplied by other traditional routing protocols, such as the Border Gateway Protocol (BGP).
In multicast networks, VLAN aware Layer 2 switches, referred to as Layer 2 switches herein, are frequently used to implement VLAN-domain/subnets, referred to as a subnet herein, in a larger network. A Layer 2 switch may connect to one or more upstream routers to implement an interface between Layer 2 host devices connected to the switch and a Layer 3 packet network formed by the routers. IGMP snooping is the process of listening to IGMP network traffic at the switch. When IGMP snooping is enabled, the switch may analyze the IGMP packets between hosts connected to the switch and multicast routers in the network and, based on the analysis, filter the multicast packets received from the multicast routers or hosts.
IGMP snooping is designed to prevent hosts on the subnet connected to the switch from receiving traffic for a multicast group that the hosts have not explicitly joined. IGMP snooping provides switches with a mechanism to prune multicast traffic from links that do not contain a multicast listener. A switch that does not IGMP snoop will, by default, ‘flood’ multicast traffic to all the ports in the subnet. Essentially, IGMP snooping is a Layer 2 optimization in forwarding multicast data towards hosts achieved through snooping of Layer 3 IGMP messages that takes place internally on the switches.
PIM snooping is another form of “snooping”. Under IGMP, and even with IGMP snooping, the Layer 2 switch may flood multicast traffic to all its connected multicast router interfaces. With PIM snooping enabled at the Layer 2 switch, however, the Layer 2 switch may listen to PIM protocol messages and restrict multicast traffic to its connected multicast router interfaces through which downstream receivers have joined the multicast group, which otherwise, by default, forwards multicast data only to the designated router (DR) of the subnet.
Optimizations such as PIM snooping and IGMP snooping can collectively operate to forward multicast data only to the intended or needed multicast hosts and routers, leading to optimization of multicast traffic.